home *** CD-ROM | disk | FTP | other *** search
- //=--------------------------------------------------------------------------=
- // LocalServer.H
- //=--------------------------------------------------------------------------=
- // Copyright 1995 Microsoft Corporation. All Rights Reserved.
- //
- // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- // PARTICULAR PURPOSE.
- //=--------------------------------------------------------------------------=
- //
- // global routines that are specific to the inproc server itself, such as
- // registration, object creation, object specification, etc...
- //
- #ifndef _LOCALSERVER_H_
-
- void InitializeLibrary(void);
- void UninitializeLibrary(void);
- BOOL RegisterData(void);
- BOOL UnregisterData(void);
- BOOL CheckForLicense();
-
- // global variables that various people use to get information about the control.
- //
- extern char g_szLibName [];
- extern const CLSID *g_pLibid;
-
- //=--------------------------------------------------------------------------=
- // Global object information table
- //=--------------------------------------------------------------------------=
- // for each object in your application, you have an entry in this table. they
- // do not necessarily have to be CoCreatable, but if they are used, then they
- // should reside here. use the macros to fill in this table.
- //
- typedef struct tagOBJECTINFO {
-
- unsigned short usType;
- void *pInfo;
-
- } OBJECTINFO;
-
- extern OBJECTINFO g_ObjectInfo[];
-
- //=--------------------------------------------------------------------------=
- // these things are used to set up our objects in our global object table
- //
- #define OI_UNKNOWN 0
- #define OI_AUTOMATION 1
- #define OI_CONTROL 2
- #define OI_PROPERTYPAGE 3
- #define OI_BOGUS 0xffff
-
- #define OBJECTISCREATABLE(index) (((UNKNOWNOBJECTINFO *)(g_ObjectInfo[(index)]).pInfo)->rclsid != NULL)
- #define ISEMPTYOBJECT(index) (g_ObjectInfo[index].usType == OI_BOGUS)
-
- // these are the macros you should use to fill in the table. Note that the name
- // must be exactly the same as that used in the global structure you created
- // for this object.
- //
- #define AUTOMATIONOBJECT(name) { OI_AUTOMATION, (void *)&(name##Object) }
- #define CONTROLOBJECT(name) { OI_CONTROL, (void *)&(name##Control) }
- #define PROPERTYPAGE(name) { OI_PROPERTYPAGE, (void *)&(name##Page) }
- #define EMPTYOBJECT { OI_BOGUS, NULL }
-
- #define _LOCALSERVER_H_
- #endif // _LOCALSERVER_H_
-